<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>

<body>
    <div id="app">
        <div>{{date | format('yyyy-MM-dd')}}</div>
    </div>
    <script src="../vue.js"></script>
    <script>
        Vue.filter('format', function(value, arg) {
            function dateFormat(date, format) {
                if (typeof date === 'string') {
                    var mts = date.match(/(\/Date\((\d+)\)\/)/);
                    if (mts && mts.length >= 3) {
                        date = parseInt(mts[2]);
                    }
                }
                date = new Date(date);
                if (!date || date.toUTCString() == 'Invalid Date') {
                    return '';
                }
                var map = {
                    M: date.getMonth() + 1, //月份
                    d: date.getDate(), //日
                    h: date.getHours(), //小时
                    m: date.getMinutes(), //分
                    s: date.getSeconds(), //秒
                    q: Math.floor((date.getMonth() + 3) / 3), //季度
                    S: date.getMilliseconds(), //毫秒
                };

                format = format.replace(/([yMdhmsqS])+/g, function(all, t) {
                    var v = map[t];
                    if (v !== undefined) {
                        if (all.length > 1) {
                            v = '0' + v;
                            v = v.substr(v.length - 2);
                        }
                        return v;
                    } else if (t === 'y') {
                        return (date.getFullYear() + '').substr(4 - all.length);
                    }
                    return all;
                });
                return format;
            }
            return dateFormat(value, arg);
        });
        var vm = new Vue({
            el: '#app',
            data: {
                date: new Date(),
            },
        });
    </script>
</body>

</html>